#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "header.h"


/*
  Définitin des fonctions permettant le décryptage de chaîne de char simple (sans majuscule, sans ponctuation,
  sans caractères spéciaux) à partir d'une clé connue. 
  Le cryptage "simple" consiste à décaler tous les caractères de "clé" caractères.

  Ex : si l'on a un caractère codé par 'c' avec une clé de 3, le décodage retourne 'z'
 */


/*
  char c : caractère à décrypter, c est un caractère compris entre 'a' et 'z' inclus.
  int key : clé. Défini le nombre de case à décaler. La clé 26_et ses multiples_ est déconseillée
  mais pas impossible (voir Hypothèses dans header.h)

  Résultat : le caractère 'c' codé par la clé simple key
 */
char DSKC(char c, int key)
{
  key = key%26;
  if ((c-key) < 97)
    {
      int b= (c-97);
      return 123 - (key-b);
    }
  else
    {
      return c-key;
    }
}


char* DSK(char* s, int key)
{
  char* result = (char*)malloc(strlen(s));
    for (int i = 0; i < strlen(s); i++)
    {
      result[i] = DSKC(s[i], key);  //décryptage caractère par caractère
    }

  return result;
}
